Digital image analysis is used for many practical purposes including, industrial automation, consumer electronics, medical diagnosis, satellite imaging, photographic processing, traffic monitoring, security, etc. In industrial automation, for example, machine vision systems use digital image analysis for automated product inspection, robot guidance, and part identification applications. In consumer electronics, for example, the common optical mouse uses digital image analysis to allow a human to control a cursor on a personal computer screen.
To service these applications, digital images are captured by a sensor, such as an optoelectronic array of photosensitive elements called pixels, and analyzed by a digital information processing device, such as a digital signal processor (DSP) or a general purpose computer executing image analysis software, to extract useful information. One common form of digital image analysis is feature detection. Physical features on objects in the field of view of the sensor (object features) give rise to patterns in the digital images (image features) that can be analyzed to provide information about those object features and the objects that contain them. Exemplary object features can include edges, corners, holes, ridges, and valleys, which give rise to changes in surface depth, orientation, and reflectance. These changes, in turn, interact with illuminating radiation to produce the image features.
Image features can be detected using many well-known methods, for example edge detection, matched filters, connectivity, Hough transforms, and geometric pattern matching. Typically, feature detection in digital image analysis is a static process, by which is meant, generally, that features are detected within a single digital image captured at a particular point in time. Equivalently, to reduce noise, static feature detection can be used on an image that is the average of a plurality of images captured from a stationary scene. In a typical static feature detection system, a one- or two-dimensional digital image of a scene is captured by any suitable mechanism. The image is then analyzed by software implementing a static feature detection technique to identify image features, which comprise a set of attributes that represent measurements of physical properties of corresponding object features. In a two-dimensional (2D) edge detection system, for example, edge attributes can comprise a position, an orientation and a magnitude. The position estimates the location of the edge within the image, and may be determined to sub-pixel precision by well-known mechanisms. The orientation estimates the angle of the edge at the estimated position. The magnitude is an estimate of edge strength, and can be used to provide a measure of confidence that the edge truly corresponds to a physical feature in the field of view and not to some artifact of instrumentation. Typically, an edge is considered to exist only if its magnitude exceeds some value herein called a detection threshold.
In a one-dimensional (1D) edge detection system, for example, position and magnitude can be similarly estimated and generally have the same meaning, but orientation is replaced with polarity, which is a two-state (binary) value that indicates whether the edge is a light-to-dark or dark-to-light transition. There are a large number of well-known static edge detection systems, including those of Sobel and Canny. Another exemplary 2D static edge detection technique is described in U.S. Pat. No. 6,690,842, entitled APPARATUS AND METHOD FOR DETECTION AND SUB-PIXEL LOCATION OF EDGES IN A DIGITAL IMAGE, by William Silver, the teachings of which are hereby incorporated by reference by way of further background. Generally the literature describes two-dimensional methods, with one-dimensional being a special and simpler case. Static edge detection techniques may utilize gradient estimation, peak detection, zero-crossing detection, sub-pixel interpolation, and other techniques that are well known in the art. Another example of static feature detection is the Hough transform, described by way of background in U.S. Pat. No. 3,069,654 entitled METHOD AND MEANS FOR RECOGNIZING COMPLEX PATTERNS, and subsequently generalized by others. For a Hough transform designed to detect lines in a 2D image, for example, the feature attributes might include position and orientation. Yet another example of static feature detection is connectivity analysis, where feature attributes might include center of mass, area, and orientation of the principal axes.
All of the information estimated by a static feature detection technique is limited in accuracy and reliability by the resolution and geometry of the pixel grid. This is because the precise alignment between the pixel grid and the physical features that give rise to image features is essentially an accident of the process by which objects or material are positioned in the field of view at the time that an image is captured. Edge magnitude, for example, varies significantly depending on this accidental alignment, which can result in failing to detect a true edge or falsely detecting an instrumentation artifact. This is particularly likely for edges at the limits of the resolution of the pixel grid-detection of such edges, whether real or artificial, is at the whim of their accidental alignment with the pixel grid. Position estimates are subject to the same whims of accidental alignment. A competent static edge detector can estimate the position of a strong, well-resolved edge to about ¼ pixel, but it is difficult to achieve a significantly better measurement. For weaker or inadequately-resolved edges, the accuracy can be substantially worse.
Static feature detection is used in the common optical mouse to track the motion of the mouse across a work surface. Methods in common use are described in, for example, U.S. Pat. No. 5,578,813, entitled FREEHAND IMAGE SCANNING DEVICE WHICH COMPENSATES FOR NON-LINEAR MOVEMENT, U.S. Pat. No. 5,644,139, entitled NAVIGATION TECHNIQUE FOR DETECTING MOVEMENT OF NAVIGATION SENSORS RELATIVE TO AN OBJECT, U.S. Pat. No. 5,786,804, entitled METHOD AND SYSTEM FOR TRACKING ATTITUDE, and U.S. Pat. No. 6,433,780, entitled SEEING EYE MOUSE FOR A COMPUTER SYSTEM. A reference pattern is stored corresponding to physical features on the work surface, where the reference pattern is a portion of a digital image of the surface. The reference pattern is correlated with subsequent digital images of the surface to estimate motion, typically using sum of absolute differences for the correlation. Once motion exceeding a certain magnitude is detected, a new reference pattern is stored. This is desired because the old reference pattern will soon move out of the field of view of the sensor.
Correlation of this nature is a form of static feature detection. The position of the mouse when a new reference pattern is stored is an accidental alignment of the physical features of the surface with the pixel grid of the sensor, and each time a new reference pattern is stored there will be some error. These errors accumulate proportional to the square root of the number of times a new reference pattern is stored, and quickly become rather large. This is generally not a significant problem for an optical mouse, because a human user serves as feedback loop controlling the motion to achieve a desired effect.
There are a large number of applications for which accurate tracking of the motion of objects or material is of considerable practical value, and where traditional methods of digital image analysis, such as that used in an optical mouse, are inadequate. These applications include numerous examples in industrial manufacturing, including for example the tracking of discrete objects (e.g. a moving line of packages) for control of an ink jet or laser printer, and the tracking of material in a continuous web (for printing and sheet cutting/handling applications, for example). The ability to track the precise motion of a surface with respect to a location is also desirable in the inspection of objects and surfaces (e.g. web inspection) so that a scanning camera, such as a 1D line scan camera can be accurately triggered to acquire images in synchronization with incremental motion of a specific physical distance. It is noted that the incremental motion, in physical units, of an object being viewed by the camera maps to the effective pixel height through the magnification induced by optical elements (e.g. a lens) between the camera sensor and the object. The line scan camera is oriented transverse to the motion direction. Each time an incremental (physical) length of the object passes beneath the line scan camera, the camera is triggered, allowing for acquisition of a continuous, stitched together, image constructed of pixels of predetermined height. Currently, the most commonly used solution is to employ a mechanical encoder attached to a transport drive shaft, but these have many well-known problems including slip between the drive and the material, resulting in inaccuracies.
By way of illustration, FIG. 1 depicts an exemplary inspection system 100 employing a shaft encoder 110 to trigger a line scan camera 120 according to the prior art. The encoder 110 is mechanically attached to a drive roller or other contacting rotating element 112, which can be part of a nip pair 112, 114, or connected to another part of the drive train used for moving an exemplary web in a downstream direction (arrow 132). The shaft encoder can alternatively be an integral component in a drive motor (not shown). Note that while a web 130 is shown as the item to be inspected, this arrangement can apply to any system in which relative motion causes pulses to be generated and employed for a predetermined purpose (e.g. scanning, print registration, etc.). A variety of encoder types can be employed in the depicted arrangement. An incremental encoder provides two quadrature outputs that indicate both the increment of rotational motion and the underlying direction of that rotation, if desired, by determining which of the two outputs is leading. Many encoders also contain an optional reference output that is transmitted each full revolution. A direction/step encoder uses a different signaling convention than a quadrature encoder but provides the same capability of sensing the amount and direction of rotation. Such encoders can also provide an indexing output. There are also absolute encoders that provide an absolute angular position, and other types known to those of ordinary skill.
As shown in FIG. 1, a controller 140 reads the encoder output 142 using a rate converter algorithm 144 appropriate to the output type, and corresponds this signal to the desired image acquisition (line trigger 146) rate in the line scan camera, based upon an estimation of web motion, and triggering one acquisition for each movement that corresponds to a pixel height. The camera 120, thereby acquires a series of 1D images along the image line 150, under illumination 152 that allows images of the surface to be delivered to a frame grabber (or similar processing device) 154 where they are stitched together and processed for information about quality, location, etc. by a commercially available vision system (for example, system 156). Based upon the inspection criteria of the vision system, an output (for example, a detected flaw) can be provided to an interface 158, for use by the system in automated and human-directed processes (for example, stopping the line to correct the flaw).
The above-noted disadvantage of encoder inaccuracy due to slippage and play in the drive mechanism with respect to the driven object is only one of a number of disadvantages encountered with a shaft encoder arrangement. In addition while most shaft encoders may signal a large number of pulses for a given 360-degree rotation, the number is not necessarily sufficient to provide a highly accurate triggering signal for closely spaced image acquisitions. Moreover, the pulses from the encoder may only comprise a rough approximation of the exact distance between required trigger events. For example, an acquisition event may be required every 3.3 pulses, and the 0.3 pulse will require an approximation step that may or may not comport with the actual distance travelled by the inspected surface.
In general, use of a non-contacting distance-sensing technology to track web motion can be advantageous for measuring small movements accurately, as it reads the surface's motion directly and is not affected by drive mechanism slippage and other mechanical concerns. Systems using laser Doppler technology for direct non-contact measurement of surface speed are currently available. However, such systems are generally expensive and bulky in-and-of-themselves. Because these systems require a separate technological platform from that of the underlying vision system, they can render the overall system's costs unacceptable.
Thus, it is desirable to provide a non-contacting system for measuring the distance and velocity of relative motion of a surface with respect to a field of view or other fixed location that is accurate and employs low-cost, readily available components. This system should be capable of replacing a conventional shaft encoder output signal and should provide flexibility with respect to pulse width so that events can be accurately triggered with respect to the surface's motion. This system should integrate with vision systems and provide a small footprint so as to fit in a wide range of existing inspection system locations on, for example, a production line.